
#ifndef __SYS_H__
#define __SYS_H__

/* 类型重命名 */

/* 1byte  8bit */ typedef unsigned char         uchar;
/* 2byte 16bit */ typedef unsigned short        ushort;
/* 2byte 16bit */ typedef unsigned short int    ushortint;
/* 4byte 32bit */ typedef unsigned int          uint;
/* 4byte 32bit */ typedef unsigned long int     ulongint;
/* 4byte 32bit */ typedef unsigned long         ulong;
/* 8byte 64bit */ typedef unsigned long long    ulonglong;

/* float          4byte 32bit */
/* double         8byte 64bit */
/* long double    8byte 64bit */

/* 线性映射函数 */

#define map(x,in_min,in_max,out_min,out_max)    ((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
#define map_float(x,in_min,in_max,out_min,out_max)	(((float)x - (float)in_min) * ((float)out_max - (float)out_min) / ((float)in_max - (float)in_min) + (float)out_min)

/* 计时时间 与 计时周期 转 计时次数 */

#define time_contrast(target_time,loop_time)    ((target_time < loop_time) ? 1 : (target_time / loop_time))

/* 16位的二进制数 */

#define bit_16(hight,low)                       ((hight << 8) | low)

/* 防止没有使用的参数提示警告 */

#define not_use(X)                              (void)X

#if USE_CRC16
ushort crc_compute(uchar *puch_msg, uchar data_len);
#endif

#endif /* __SYS_H__ */

